import cv2
import numpy as np

def cv_show(img, name):
    cv2.imshow(name, img)
    cv2.waitKey(0)  # 等待按键事件
    cv2.destroyAllWindows()  # 关闭所有窗口

img = cv2.imread('fire.jpeg', cv2.IMREAD_GRAYSCALE)  # 读取图像

# 应用Sobel边缘检测
sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)  # 对图像应用Sobel算子
sobelx_abs = np.absolute(sobelx)  # 取绝对值来确保找到的边缘为正值
sobelx_uint8 = np.uint8(sobelx_abs)  # 转换为8位无符号整型

# 显示处理后的图像
cv_show(sobelx_uint8, "Sobel X")